Calibre-Web 自建私有電子書庫與跨裝置閱讀管理
1. 架構核心概念與避坑指南
1.1 書庫結構與 metadata.db 核心依賴
-
Calibre-Web 無法獨立無中生有建立全新書庫,它必須掛載一個已經包含
metadata.db的 Calibre 書庫目錄。 -
初次建置時,若指定的目錄為空,系統會報錯並拒絕初始化。必須先用桌面版 Calibre 建立書庫,或放入一個空 白但合格的
metadata.db。
1.2 儲存拆分鐵律:本機 SSD vs. NAS 網路掛載
如同 Navidrome 與 Nextcloud 的維護經驗,SQLite 資料庫在網路檔案系統上有重大陷阱:
-
書庫實體目錄 (
/books):儲存書籍本體(EPUB、MOBI、PDF、封面圖),強烈建議掛載於 NAS(支援 SMB/CIFS 或高效能 NFS)。
-
設定檔與應用資料庫 (
/config):包含 Calibre-Web 自身的使用者權限、閱讀進度與書籤資料庫(
app.db)。務必保留在宿主機本機 SSD,切勿掛在 CIFS/NFS 網路磁碟上,以避免高頻鎖定衝突造成 SQLite 損毀。
1.3 USE_CONFIG_DIR=true 的作用
在 LinuxServer.io 的 Calibre-Web 映像檔中,宣告 USE_CONFIG_DIR=true 代表強制將 Calibre-Web 的自身系統資料庫 app.db 存放在 /config 中,與 /books 內的 Calibre 書庫 metadata.db 進行物理隔離,確保多使用者與備份管理更安全。
2. 前置準備:Photon OS 掛載 NAS 書庫 (CIFS vs. NFS)
方案 A:使用 CIFS / SMB 掛載
若 NAS 原生偏向 Windows ACL 或透過帳密存取:
# 1. 確保已安裝 cifs-utils
tdnf -y install cifs-utils
# 2. 建立掛載點
sudo mkdir -p /mnt/nas/books
# 3. 編輯 /etc/fstab 自動掛載
# //192.168.1.50/Books /mnt/nas/books cifs credentials=/root/.smbcredentials/nas,uid=1000,gid=1000,rw,iocharset=utf8,_netdev,nofail 0 0
方案 B:使用 NFSv4.1 掛載(推薦,效能更佳)
在 NAS 端開放 NFS 導出與白名單 IP,於 Photon OS 掛載:
# 1. 安裝 NFS 工具
tdnf -y install nfs-utils
systemctl enable --now rpcbind
# 2. 建立掛載點
sudo mkdir -p /mnt/nas/books
# 3. 編輯 /etc/fstab
# 192.168.1.50:/volume1/Books /mnt/nas/books nfs nfsvers=4.1,rw,_netdev,nofail,hard,intr,rsize=1048576,wsize=1048576 0 0
# 4. 測試掛載
sudo mount -a
ls -la /mnt/nas/books
(注意:若需要在 Web 介面上傳書籍或編輯中繼資料,掛載權限必須是 rw 可讀寫)。
3. Docker Compose 完整部署配置 (整合 Traefik v3)
本配置將 /config 保留在本機 SSD(/opt/calibre-web/config),書籍庫掛載 NAS 的 /mnt/nas/books,並由 Traefik 接管 SSL 卸載。